With the proliferation of enhanced communication systems conventional communication methods such as telephone communications are being replaced with computer executed applications performing the same tasks. While some of the challenges in conventional systems, such as echo or noise, occur in computer-based enhanced systems, solutions may be designed through software and/or hardware approaches. For example, echoes are heard in the conservation through a two channel full-duplex voice communication system if strong acoustic coupling exists between transmit and receive points of a channel. An Acoustic Echo Canceller (AEC) is a signal processing technology used to remove this type of echo.
In order to provide an echo free experience, tradeoffs often need to be made that affect the full-duplex nature of a conversation. Before making such tradeoffs, it is necessary to verify echo is actually present in a conversation, this is to ensure high conversation quality is maintained under different scenarios. For example, proper AEC behavior is highly dependent on accurate alignment between speaker and microphone streams. On personal computers timestamps are typically used for this purpose. Timestamps represents the physical time of when a sample is rendered (in the speaker stream) or captured (in the microphone stream). Depending on the specific device/driver in use, the obtained timestamps may vary a lot, and due to the strong dependence of AEC on timestamps, it is important to assess a quality of the timestamps and switch to a half-duplex mode of communication in case the timestamps are determined to be too noisy. This may ensure continuation of the conversation without echo or voice distortion issues but at the cost of full-duplex behavior. This tradeoff while acceptable in cases of strong echo, may not be acceptable in cases where the device in use effectively eliminates the echo (e.g., if headphones/headsets are in use or the device has a built-in AEC).